3.8 [FmpPayload] Sections

These are optional sections that describes the FMP payload content for FMP Capsule files.

There must be at least one and at most two <FmpFileData> statements. The <FmpFileData> statements start with FILE DATA. The first statement provides the information for UpdateImage in an EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER. The second statement, if present, provides the information for VendorCode in an EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER.

Prototype

<FmpPayload>       ::= "[FmpPayload" "." <UiFmpName> "]" <EOL>
                       <FmpTokens>
                       <FmpFileData>{1,2}
<UiFmpName>        ::= <Word>
<FmpTokens>        ::= [<TS> "IMAGE_HEADER_INIT_VERSION" <Eq> <Hex2> <EOL>]
                       <TS> "IMAGE_TYPE_ID" <Eq> <RegistryFormatGUID> <EOL>
                       [<TS> "IMAGE_INDEX" <Eq> <Hex2> <EOL>]
                       [<TS> "HARDWARE_INSTANCE" <Eq> <Hex2> <EOL>]
                       [<TS> "MONOTONIC_COUNT"<Eq> <NumValUint64> <EOL>]
                       [<TS> "CERTIFICATE_GUID"<Eq> <RegistryFormatGUID><EOL>]
<FmpFileData>      ::= <FileStatements>*
                       <FvStatements>*
                       <FdStatenents>*
<FileStatements>   ::= <TS> "FILE" <Space> "DATA" <Eq> <Filename> <EOL>
<FvStatements>     ::= "FV" <Eq> <FvNameOrFilename> <EOL>
<FvNameOrFilename> ::= {<FvUiName>} {<FvFilename>}
<FvUiName>         ::= {<Word>} {"common"}
<FvFilename>       ::= [<PATH>] <Word> "." "fv"
<FdStatements>     ::= "FD" <Eq> <FdNameOrFilename> <EOL>
<FdNameOrFilename> ::= {<FdUiName>} {<FdFilename>}
<FdUiName>         ::= {<Word>} {"common"}
<FdFilename>       ::= [<PATH>] <Word> "." "fd"

Note: The CERTIFICATE_GUID and MONOTONIC_COUNT must work as a pair. If CERTIFICATE_GUID is provided, the FMP payload is processed as UEFI FMP Authentication format, and MONOTONIC_COUNT MUST be provided. If CERTIFICATE_GUID is not provided, the FMP payload is processed as UEFI FMP non-Authentication format, and MONOTONIC_COUNT MUST NOT be provided.


Example

[FmpPayload.Payload1]
  # FMP payload header
  IMAGE_HEADER_INIT_VERSION = 0x02
  # FMP payload header
  IMAGE_TYPE_ID     = 938A6F2E-9711-49CE-90D5-7ED68AC96501
  IMAGE_INDEX       = 0x1 # FMP payload header
  HARDWARE_INSTANCE = 0x0 # FMP payload header

  FILE DATA = UpdateImage.bin
  FILE DATA = VendorCodeBytes.bin # optional